7.14 NameValueCollection 클래스
NameValueCollection은 System.Collections.Specialized 네임스페이스를 이용하고 있으며 string형의 키와 string형의 값으로 구성할 수 있습니다. NameValueCollection 클래스가 Hashtable과 구분되는 것은 키와 값의 대상이 Hashtable에서는 object형이지만 NameValueCollection은 string형으로만 사용한다는 것이 가장 큰 특징입니다. 다음은 NameValueCollection 클래스의 프로토타입입니다.
▣ NameValueCollection 클래스의 프로토타입 |
□ public class NameValueCollection : NameObjectCollectionBase
□ public abstract class NameObjectCollectionBase : ICollection, IEnumerable, ISerializable, IdeserializationCallback |
아래 코드는 NameValueCollection 클래스를 사용해서 데이터를 처리하고 있는 예입니다.
& |
NameValueCollectionTest.cs |
Ü NameValueCollection을 테스트하는 예제 |
using System; using System.Collections.Specialized;
class NameValueCollectionTest{ public static void Main(){ NameValueCollection dic = new NameValueCollection(); dic.Set("이름","김삿갓"); dic.Set("나이","24"); dic.Set("성별","남"); string name = dic.Get("이름"); string age = dic.Get("나이"); string sex = dic.Get("성별"); Console.WriteLine("이름={0}, 나이={1}, 성별={2}", name, age, sex); for(int i=0;i<dic.Count;i++){ Console.Write("{0}={1}\n",dic.Keys[i], dic[i] ); } } //main } //class |
C:\C#Example\07>csc NameValueCollectionTest.cs
C:\C#Example\07>NameValueCollectionTest
이름=김삿갓, 나이=24, 성별=남
이름=김삿갓
나이=24
성별=남 |
NameValueCollection 객체를 생성한 후 데이터를 삽입하고 있습니다. 요소를 삽입할 때 사용되는 메서드는 Set()입니다. 이 때 키와 값으로 사용할 데이터를 설정하며 키(Key)와 값(Value)은 스트링형만 가능합니다.
NameValueCollection dic = new NameValueCollection();
dic.Set("이름","김삿갓");
dic.Set("나이","24");
dic.Set("성별","남");
데이터를 얻어오기 위해서 Get() 메서드에 키(Key)를 매개변수로 사용하였습니다.
string name = dic.Get("이름");
string age = dic.Get("나이");
string sex = dic.Get("성별");
NameValueCollection 클래스의 키와 값 또한 컬렉션류이기 때문에 인덱서(Indexer)가 적용됩니다. 그리고, Keys 속성을 인덱서처럼 이용하여 해당 키를 추출하고 있습니다.
Console.Write("{0}={1}\n",dic.Keys[i], dic[i] );
스트링 형으로만 키와 값을 사용한다는 것이 이색적이며 어려운 클래스는 아닙니다. |